記錄學習內容。
主要是看網路上的文章和影片,做些紀錄。
內容可能有錯誤。
How Do You Write Closures in Swift?
教學裡先講了 給一個陣列 和 一個整數
要來找 在這個陣列裡 比這個整數 小的數字 。
就是用迴圈 一個一個比較 , 如果陣列裡的數字 < 整數 ,就加到結果
可是今天 我想 改成
在這個陣列裡 比這個整數 大的數字
就要把 < 改成 >
Function的名稱 也要把Greater 改成 lesser ,才符合題意
所以這時候就可以用closure :
原本
If ( num > value )
輸入是num > value
輸出是 true
所以 改成closure 就是
(Int) ->Bool
{(num) -> Bool in return num <5 }
然後判斷改成
If closure(num)
Closure 感覺就像 一個 func變數 。
有點像 C# 的delegate
接著來看:
Swift 3 Fun Algorithms: Filter, Map, Reduce Higher Order Functions
1
要在一個陣列裡 ,找出有3的數字 或是偶數的數字
除了用一般迴圈的方法
有一個方法是numbers.filter() 可以直接 幫忙處理 。
2
現在有一個陣列 ,要把裡面的數字都*2
[1,2,3,4] 變成[2,4,6,8] ,
可以用map
3
一個陣列[1,2,3,4] 要算總和 ,可以用reduce
這篇文章很詳細:
Day27:當天的鐵人當天寫 - Higher-Order Functions & Closure(3)